﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Drawing;
using System.IO;
using System.Windows.Forms;

namespace IM.gerenciadores
{
    public class GerenciadorDeUsuarios
    {
        private GerenciadorDeUsuarios()
        {
            //Singleton
        }

        private static GerenciadorDeUsuarios instancia;
        public static GerenciadorDeUsuarios getInstancia()
        {
            if (GerenciadorDeUsuarios.instancia == null)
            {
                GerenciadorDeUsuarios.instancia = new GerenciadorDeUsuarios();
            }
            return GerenciadorDeUsuarios.instancia;
        }


        private Hashtable usuarios;
        private Hashtable Usuarios
        {
            get {
                if (usuarios == null)
                {
                    usuarios = new Hashtable();
                    usuarios.Add("andre.bacaglini", "Kevin");
                    usuarios.Add("andre.freitas", "Pião");
                    usuarios.Add("venilton.junior", "Filhão");
                    usuarios.Add("evandro.tartari", "Morto");
                    usuarios.Add("gustavo.bergamim", "Rato");
                }
                return usuarios;
            }
            set { usuarios = value; }
        }

        public String getUserNamePorLogin(String login)
        {
            String userName = login;
            if (Usuarios.ContainsKey(login))
            {
                userName = (String) Usuarios[login];
            }
            return userName;
        }
        
        public Image getAvatarPorLogin(String login)
        {
            string pastaIMG = Application.StartupPath + "\\imagensTeste\\";
            Image avatar = null;
            if (File.Exists(pastaIMG + login + ".png") && login.Length > 0)
            {
                avatar = new Bitmap(pastaIMG + login + ".png");
            }
            else
            {
                avatar = new Bitmap(pastaIMG + "todos.png");
            }
            return avatar;
        }

        public Image getByteArrayAsImage(byte[] imagemAConverter)
        {
            Image imagemConvertida;

            using (MemoryStream ms = new MemoryStream(imagemAConverter, 0, imagemAConverter.Length))
            {
                ms.Write(imagemAConverter, 0, imagemAConverter.Length);
                imagemConvertida = Image.FromStream(ms, true);
            }

            return imagemConvertida;
        }

        public InterfaceRemota.IUsuario recuperaUsuarioSelecionadoDoListView(ListView list)
        {
            InterfaceRemota.IUsuario selecionado = null;

            if (list.SelectedItems.Count > 0)
            {
                ListViewItem item = list.SelectedItems[0];
                selecionado = (InterfaceRemota.IUsuario)item.Tag;
            }

            return selecionado;
        }
    }
}
